<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <div id="main" style="width: 99%; height: 600px;margin:0 10px;"></div>
  <!-- <script src="_data_.js"></script> -->
  <script src="_data_.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/echarts@5.3.3/dist/echarts.min.js"></script>
  <script>
    var chartDom = document.getElementById('main');
    var myChart = echarts.init(chartDom);
    var option;

    fetch(`./train__.json`, {}).then(response => {
      if (response.status >= 200 && response.status < 300) { // 判断请求是否成功
        return response.json() // 得到 JSON 对象
      } else {
        throw new Error(response.statusText);
      }
    }).then(data => {
      // json.reverse()
      // let data = {}
      // json.forEach((item, index) => {
      //   data[item.issueNo] = item
      // })
      // cc(predictData, data)
      bar(data)
    }).catch(err => {
      console.log('Request Failed', err)
    });

    function bar(data) {
      ser = []
      lengthName = []
      AccuracyRate_ = {}
      Object.keys(data).forEach((item, index) => {
        // if (index > 2) return
        lengthName.push(item)
        dd = []
        hezhi = 0
        data[item].forEach((item) => {
          dd.push(item["AccuracyRate"] * 100)
          hezhi += (item["AccuracyRate"] * 100)
        })
        AccuracyRate_[item] = hezhi / data[item].length
        ser.push(
          {
            name: item,
            type: 'bar',
            tooltip: {
              valueFormatter: function (value) {
                return value;
              }
            },
            data: dd
          }
        )
      })
      console.log('统计平均值',)
      console.log('', AccuracyRate_)

      option = {
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
            crossStyle: {
              color: '#999'
            }
          }
        },
        // toolbox: {
        //   feature: {
        //     dataView: { show: true, readOnly: false },
        //     magicType: { show: true, type: ['line', 'bar'] },
        //     restore: { show: true },
        //     saveAsImage: { show: true }
        //   }
        // },
        legend: {
          // data: ['Evaporation', 'Precipitation', 'Temperature']
        },
        xAxis: [
          {
            type: 'category',
            // data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
            axisPointer: {
              type: 'shadow'
            }
          }
        ],
        yAxis: [
          {
            type: 'value',
            // name: 'Precipitation',
            // min: 0,
            // max: 250,
            interval: 50,
            axisLabel: {
              formatter: '{value}'
            }
          },
          // {
          //   type: 'value',
          //   name: 'Temperature',
          //   min: 0,
          //   max: 25,
          //   interval: 5,
          //   axisLabel: {
          //     formatter: '{value}'
          //   }
          // }
        ],
        series: ser
      };
      option && myChart.setOption(option, true);
    }


    fetch('./predictValue__authentic.json', {}).then(response => {
      if (response.status >= 200 && response.status < 300) { // 判断请求是否成功
        return response.json() // 得到 JSON 对象
      } else {
        throw new Error(response.statusText);
      }
    }).then(predictData => {
      // 降序 DESC
      // 升序 ASC
      fetch(`http://106.13.233.100:3002/exeQuery?sql=select issueNo, five from issue_data order by issueNo DESC LIMIT ${predictData[Object.keys(predictData)[0]].length + 10}`, {}).then(response => {
        if (response.status >= 200 && response.status < 300) { // 判断请求是否成功
          return response.json() // 得到 JSON 对象
        } else {
          throw new Error(response.statusText);
        }
      }).then(json => {
        json.reverse()
        let data = {}
        json.forEach((item, index) => {
          data[item.issueNo] = item
        })
        cc(predictData, data)
      }).catch(err => {
        console.log('Request Failed', err)
      });
    }).catch(err => {
      console.log('Request Failed', err)
    });

    function cc(predictData, authenticData) {
      /**
       * 统计预测和真实值的正确情况
       * @author weijun.wu
       * @param predictData {type} 预测值
       * @param authenticData {type} 真实值
       **/
      // console.log(authenticData);  // 得到最终结果。
      // console.log(predictData);  // 得到最终结果。
      Object.keys(predictData).forEach((item_, index) => {
        dd = predictData[item_];
        total = dd.length
        zj = 0
        min = 0
        max = 0
        money = 0
        dd.forEach((item, index) => {
          issueNo = item.issueNo[0]
          predictValue = item.predictValue
          if (!authenticData[issueNo + 1]) return
          zjhm = authenticData[issueNo + 1]["five"] // 中奖号码
          if (predictValue.includes(zjhm)) {
            // console.log('对了啊',)
            zj += 1
            money += 4.6
          } else {
            money -= 5
            // console.log('…………',)
          }
          if (money > max) max = money
          if (money < min) min = money
        })
        console.log('==============================',)
        console.log(`总共 ${total} 题`)
        console.log(`答对了 ${zj} 题`)
        console.log(`正确率为： ${(zj / total * 100).toFixed(2)}%`)
        console.log(`最小得分为： ${min.toFixed(2)}`)
        console.log(`最大得分为： ${max.toFixed(2)}`)
        console.log(`得分为：${(zj * 4.6 - (total - zj) * 5).toFixed(2)}`)
        // console.log(`总共 ${total} 题, 答对了 ${zj} 题，正确率为 ${(zj/total*100).toFixed(2)}%，得分为：${(zj * 4.6 - (total - zj) * 5).toFixed(2)}`)
      })
    }

    // fetch('http://106.13.233.100:3002/getLimitData/500', {}).then(response => {
    //   if (response.status >= 200 && response.status < 300) { // 判断请求是否成功
    //     return response.json() // 得到 JSON 对象
    //   } else {
    //     throw new Error(response.statusText);
    //   }
    // }).then(json => {
    //   json.reverse()
    //   console.log(json);  // 得到最终结果。
    //   money = 0
    //   sqz = 0 // 保存上期遗漏的值
    //   json.forEach((item, index) => {
    //     // min = 9
    //     // max = 0
    //     // Object.keys(item).forEach((no) => {
    //     //   if (no == "id" || no == "issueNo" || no == "createDate") return
    //     //   if (item[no] > max) max = item[no]
    //     //   if (item[no] < min) min = item[no]
    //     // })
    //     // console.log('', min, max)
    //     // if (index == 0) {
    //     //   sqz = max - min
    //     //   return
    //     // }
    //     // if (sqz != max - min) {
    //     //   money += 0.8
    //     // } else {
    //     //   money -= 9
    //     // }
    //     if (index < 3) {
    //       return
    //     }
    //     debugger
    //     // a = json[index - 2]["five"]
    //     // b = json[index - 1]["five"]
    //     // c = Math.abs(b - a)
    //     if (parseInt(String(json[index]["issueNo"]).split("").reverse()[0]) != json[index]["five"]) {
    //       money += 0.8
    //     } else {
    //       money -= 9
    //     }
    //   })
    //   console.log('money:', money)
    // }).catch(err => {
    //   console.log('Request Failed', err)
    // }); 
  </script>
</body>

</html>